home *** CD-ROM | disk | FTP | other *** search
/ ftp.cs.arizona.edu / ftp.cs.arizona.edu.tar / ftp.cs.arizona.edu / icon / newsgrp / group02b.txt / 000004_icon-group-sender_Fri Aug 16 16:11:53 2002.msg < prev    next >
Internet Message Format  |  2003-01-02  |  2KB

  1. Return-Path: <icon-group-sender>
  2. Received: (from root@localhost)
  3.     by baskerville.CS.Arizona.EDU (8.11.1/8.11.1) id g7GNATQ22865
  4.     for icon-group-addresses; Fri, 16 Aug 2002 16:10:29 -0700 (MST)
  5. Message-Id: <200208162310.g7GNATQ22865@baskerville.CS.Arizona.EDU>
  6. From: Hrvoje Blazevic <hrvoje@despammed.com>
  7. X-Newsgroups: comp.lang.icon
  8. Subject: Re: What about "Expressions?" (was Re: Icon Wish List)
  9. Date: Thu, 15 Aug 2002 23:16:43 +0200
  10. X-Complaints-To: abuse@hinet.hr
  11. User-Agent: Pan/0.11.2 (Unix)
  12. X-Comment-To: "Christopher Browne" <cbbrowne@acm.org>
  13. To: icon-group@cs.arizona.edu
  14. Errors-To: icon-group-errors@cs.arizona.edu
  15. Status: RO
  16.  
  17. On Thu, 15 Aug 2002 18:53:13 +0200, Christopher Browne wrote:
  18.  
  19. > I'm just not sure I'm seeing what is the essential difference between
  20. > "statements" and "expressions" here.
  21. > I'm not a dumb reader; your English seems fine (better than far too many
  22. > natives!); I'm _quite_ familiar with Lisp and Scheme; I'm just not sure
  23. > what the difference you're getting at is.  And perhaps what you have in
  24. > mind isn't the same as what the guy that brought up Terse had in mind...
  25.  
  26. The difference is essential!
  27.  
  28. Imperative languages use statements -- which results in flow of
  29. information between different parts of program being passed in the
  30. form of a variable assignment.
  31.  
  32. Statements do not return values, they have side-effects, most notably
  33. assignment to variables that describe the state of the computation at
  34. any given moment.
  35.  
  36. Although Icon *is* imperative language it can get away with less state
  37. variables than most, simply because it uses expressions which return
  38. values. Therefore smaller chunks of code in Icon do not have to
  39. describe state as the set of variables.
  40.  
  41. I may be getting over my head here, because I'm *not* an Icon
  42. programmer. I did get briefly involved with Icon about 10 years ago,
  43. just after several years of down and dirty imperative programming
  44. using Pascal and C/C++. At that time I read "The Icon Programming
  45. Language" (2nd edition), and was instantly drawn to Icon. 
  46. Unfortunately at about the same time my son reached fourth
  47. grade, and I wanted to start him on a road to CS, so I started looking
  48. at Logo.
  49.  
  50. After that, the road was clear; Logo, Lisp (emacs lisp), Scheme and Haskell.
  51.  
  52. I do not think that I'll ever go back to Icon, but I still sometimes
  53. check the web site, nostalgia ... probably :-)
  54.